# ferreus_orbit Plugins for HPE "DL385 Gen10 Plus"

fo_get_sorted_name(){
  local card=$(echo $DEVPATH | cut -d/ -f6)
  local target=$(echo $DEVPATH | cut -d/ -f9)
  # We expect here 2 SATA SSDs and 12 SAS HDD
  if [ "${card}" = "ata7" ] && [ "${target}" = "6:0:0:0" ]; then
    local disk="sda"
  elif [ "${card}" = "ata8" ] && [ "${target}" = "7:0:0:0" ]; then
    local disk="sdb"
  elif   [ "${card}" = "host8" ] ; then
    local sc=$(echo "${DEVPATH}" | cut -d/ -f12)
    local box=$(grep "\[${sc}\]"  /sys/class/scsi_generic/sg*/device/path_info | awk '{print $6}')
    local id=$(grep "\[${sc}\]"  /sys/class/scsi_generic/sg*/device/path_info | awk '{print $8}')
    local num=$(( ((${BOX} - 1) * 4 ) + (${ID} - 1) + 2 ))
    local disk=sd$(fo_get_dev_letter ${num})
  fi
  if [ -z "$MAXILIUM_ARG_to_fo_name" ]; then
    echo $disk
    exit 0
  else
    echo "Box${box}-Disk${id}"
    exit 0
  fi
}

get_dispo(){
  echo 'HDD disposition (Front Panel):'
  # Box 1
  printf -- "_%.s" $(seq 1 105);echo
  for box in $(seq 1 3);do
    local ba=$(grep "BOX: ${box}.*BAY: 1"  /sys/class/scsi_generic/sg*/device/path_info | cut -d' ' -f1|cut -d'[' -f2|cut -d':' -f3)
    local scsi1="scsi@8:0.${ba}.0"
    ba=$(grep "BOX: ${box}.*BAY: 2"  /sys/class/scsi_generic/sg*/device/path_info | cut -d' ' -f1|cut -d'[' -f2|cut -d':' -f3)
    local scsi2="scsi@8:0.${ba}.0"
    ba=$(grep "BOX: ${box}.*BAY: 3"  /sys/class/scsi_generic/sg*/device/path_info | cut -d' ' -f1|cut -d'[' -f2|cut -d':' -f3)
    local scsi3="scsi@8:0.${ba}.0"
    ba=$(grep "BOX: ${box}.*BAY: 4"  /sys/class/scsi_generic/sg*/device/path_info | cut -d' ' -f1|cut -d'[' -f2|cut -d':' -f3)
    local scsi4="scsi@8:0.${ba}.0"
    local D0=$(fo_get_name_by_bus "${scsi1}" 23); local F0=$(fo_get_field_by_bus "${scsi1}" 23)
    local D1=$(fo_get_name_by_bus "${scsi2}" 23); local F1=$(fo_get_field_by_bus "${scsi2}" 23)
    local D2=$(fo_get_name_by_bus "${scsi3}" 23); local F2=$(fo_get_field_by_bus "${scsi3}" 23)
    local D3=$(fo_get_name_by_bus "${scsi4}" 23); local F3=$(fo_get_field_by_bus "${scsi4}" 23)
    printf "| Box ${box} |${D0}|${D1}|${D2}|${D3}|\n"
    printf "|       |${F0}|${F1}|${F2}|${F3}|\n"
    if [ "${box}" -lt 3 ]; then
      printf "|-------|-----------------------|-----------------------|-----------------------|-----------------------|\n"
    fi
  done
  printf -- "-%.s" $(seq 1 105);echo
# Rear Panel:
  echo;echo 'System HDD (Rear Panel):'
  printf -- "_%.s" $(seq 1 25);echo
  local D12=$(fo_get_name_by_bus "scsi@6:0.0.0" 23); local F12=$(fo_get_field_by_bus "scsi@6:0.0.0" 23)
  local D13=$(fo_get_name_by_bus "scsi@7:0.0.0" 23); local F13=$(fo_get_field_by_bus "scsi@7:0.0.0" 23)
  printf "|${D12}|\n|${F12}|\n"
  printf -- "-%.s" $(seq 1 25);echo
  printf "|${D13}|\n|${F13}|\n"
  printf -- "-%.s" $(seq 1 25);echo
}
